#ifndef __ARCHIVOREGISTROS_H__
#define __ARCHIVOREGISTROS_H__

#include <fstream>
#include <string>

class ArchivoRegistros {
private:
	std::fstream  archivo;
	int tamanioRegistro; //tamaño en bytes del registro

public:

	//abre el archivo, si no existe lo crea.
	ArchivoRegistros(std::string nombre, int tamanioRegistro);

	~ArchivoRegistros();

	//escribe en la posicion actual 'tamanioRegistro' bytes que estan dentro de registro.
	void escribir(const void* registro);

	//lee desde la posicion actual 'tamanioRegistro' bytes que estan dentro de registro.
	void leer(void* registro);

	//devuelve true si se ha llegado al fin del archivo, es decir no se puede leer mas registros.
	bool fin();

	//post: devuelve la posicion relativa del registro actual.
	long int posicion();

	//posicion : numero de registro (0..n)
	//cambia la posicion actual.
	void posicionarse(long int posicion);

};
#endif
